package modelo;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Laboratorio {

	private ArrayList<Proyecto> proyecto;
	private ArrayList<GrupoColaborativo> grupos;
	private ArrayList<Colaborador> colaboradores;
	private ArrayList<LineaDeInvestigacion> lineas;
	private GrupoColaborativo gc;
	
	public Laboratorio () {
		super();
		this.gc = new GrupoColaborativo();
		this.proyecto = new ArrayList <Proyecto>();
		this.grupos = new ArrayList <GrupoColaborativo>();
		this.colaboradores = new ArrayList<Colaborador>();
		this.lineas = new ArrayList<LineaDeInvestigacion>();
		
		//cargarGrupo();
	
	}
	//-----------------------------------------------------------------METODOS DEL VECTOR DE LINEAS
		//AGREGA UNA LINEA
		public void agregarLinea (LineaDeInvestigacion linea){
			this.lineas.add(linea); 
			}
		
		//SET LINEA
		public void setLinea(int fila,LineaDeInvestigacion linea){
			this.lineas.set(fila, linea);
			}
		
		//GET LINEA
		public LineaDeInvestigacion getLinea(int i){
			return lineas.get(i);  		// Retorna la posicion I del vector de proyectos
			}
		
		//BUSCAR UNA LINEA
		public int buscarLinea(String nombre)
		{
			for (int i=0; i<this.lineas.size();i++)
			{
				LineaDeInvestigacion l = lineas.get(i);
				if(nombre.equalsIgnoreCase(l.getNombre()))
				{
					return i;
				}
			}
			return -1;
		}
	
		//SIZE DE LINEAS
		public int contarLineas(){
			return this.lineas.size(); 	//Retorna el tamano del vector de linea
			}
		
		public ArrayList<LineaDeInvestigacion> getLineas() {
			return this.lineas; 			//Retorna el vector completo de Proyectos
			}
		

	//-----------------------------------------------------------------METODOS DEL VECTOR PROYECTOS
	public void agregarProyecto (Proyecto proyecto){
		this.proyecto.add(proyecto); //Agrega un nuevo proyecto
		}
	
	public ArrayList<Proyecto> getProyectos() {
		return this.proyecto; 			//Retorna el vector completo de Proyectos
		}
	
	
	public int contarProyectos(){
		return this.proyecto.size(); 	//Retorna el tama�o del vector de proyectos
		}
	
	public Proyecto getProyecto(int i){
		return proyecto.get(i);  		// Retorna la posicion I del vector de proyectos
		}
	
	public void setProyecto(int fila,Proyecto proyecto){
		this.proyecto.set(fila, proyecto);
		}
	
	public ArrayList<Proyecto> Proyectos() {
		ArrayList<Proyecto> proyectosactivos= new ArrayList<Proyecto>();
		for(int i=0;i<contarProyectos();i++){
			if ( proyecto.get(i).getStatus()=="A")
				proyectosactivos.add(proyecto.get(i));
		      	}
		return proyectosactivos;
	}
	
	
	public int buscarProyecto (String codig)
	{ 	
		for(int i=0;i<contarProyectos();i++){
			Proyecto p = proyecto.get(i);
		
			if (codig.equalsIgnoreCase(p.getCodigo()))
			return i;
		}//fin del for
		return -1;
	}//fin buscar proyecto
	
	//-----------------------------------------------------------------METODOS DEL VECTOR DE GRUPOS
	public int contarGrupo (){
		return this.grupos.size();
		}
	
	public void agregarGrupo(GrupoColaborativo grupo){
		this.grupos.add(grupo);
	}
	
	public ArrayList<GrupoColaborativo> getGrupos() {
		return grupos;
		}
	
	public void setGrupos(ArrayList<GrupoColaborativo> grupos) {
		this.grupos = grupos;
		}
	
	public void setGrupo(int fila,GrupoColaborativo grupo){
		this.grupos.set(fila, grupo);    //Setea un grupo en una fila
		}
	
	//BUSCAR COLABORADOR
	public int buscarColaborador(String ced){
		for (int i = 0; i<colaboradores.size(); i++){
			if (ced.equalsIgnoreCase(colaboradores.get(i).getCedula())){
				return i;
			}
		}
		return -1;
	}
		
	//OBTENER UN COLABORADOR (OBJETO)
	public Colaborador obtenerUnColaborador(int pos){
		return colaboradores.get(pos);
	}
		
	//BUSCAR GRUPO COLABORATIVO
	public int buscarGrupo(String codigo){
		for (int i = 0; i<contarGrupo(); i++){
			if (codigo.equalsIgnoreCase(grupos.get(i).getCodigoGrupo())){
				return i;
			}
		}
		return -1;
	}
		
	//OBTENER UN GRUPO COLABORATIVO (OBJETO)
	public GrupoColaborativo obtenerUnGrupo(int pos){
		return grupos.get(pos);
	}
	//-------------------------------------------------------------------METODOS DEL VECTOR DE COLABORADORES
	public int contarColaborador(){
		return this.colaboradores.size();
		}
	
			
	public ArrayList<Colaborador> getColaboradores() {
		return colaboradores;
		}
	public void setColaboradores(ArrayList<Colaborador> colaboradores) {
		this.colaboradores = colaboradores;
		}
	
	public Colaborador obtenerColaborador(int pos){
		return colaboradores.get(pos);
		}
	
	//Metodo agregar un colaborador
	public void agregarColaborador(Colaborador colaboradores)
	{
		this.colaboradores.add(colaboradores);
	}
	
	public void setColaborador(int fila, Colaborador colaborador)
	{
	 this.colaboradores.set(fila, colaborador);
	}
	
	public ArrayList<Colaborador> ColaboradoresDisponibles()
	{
	 ArrayList<Colaborador> colaboradoresdisponibles = new ArrayList<Colaborador>();
	 for (int i=0; i<contarColaborador(); i++)
	 {
	  if(colaboradores.get(i).getEstatus()=='A')
	  {
	   colaboradoresdisponibles.add(colaboradores.get(i));
	  }
	 }
	 return colaboradoresdisponibles;
	 
	}
	
	
	public void RemoverElemento()
	 {
	  for(int i=0; i<contarColaborador(); i++)
	  {
	   if(colaboradores.get(i).getEstatus()=='I')
	   {
	    colaboradores.remove(i);
	   }
	  }
	 }
	//------------------------------------------------------CARGADO DE ARCHIVOS DE ARAIS
	
	/*
public void cargarArchivos(){
		
		
		try {

			
			   BufferedReader reader = new BufferedReader(new FileReader("Grupo.txt"));
			   
			   String retornoDeCarro = System.getProperty("line.separator");
			   String linea = reader.readLine();
			      

			     
			   while (linea == "*")
			   {
				  
				   GrupoColaborativo grupoc = new GrupoColaborativo();
				   grupoc.setCodigoGrupo(linea);
				   String nombre = linea;
				   linea = reader.readLine();
				   grupoc.setNombreGrupo(linea);
				  
				   
				   this.grupos.add(grupoc);
					System.out.println("Pas�");	 
					   
					     
					   while (linea != "*")
					   {
						   Colaborador colaborador = new Colaborador();
						   colaborador.setCedula(linea);
						   //String c = linea2;
						   linea = reader.readLine();
						   colaborador.setNombre(linea);
						     //String n = linea2;
						   linea = reader.readLine();
						   //String p = linea2;
						  	colaborador.setApellido(linea);
						   linea = reader.readLine();
						   //String ct = linea2;
						    colaborador.setSexo(linea);
						    linea = reader.readLine();
							 colaborador.setDia(linea);
							 linea = reader.readLine();
							   //String ct = linea2;
							colaborador.setMes(linea);
							linea = reader.readLine();
							   //String ct = linea2;
							colaborador.setAnno(linea);
							linea = reader.readLine();
							   //String ct = linea2;
							colaborador.setTelefono(linea);
							linea = reader.readLine();
							   //String ct = linea2;
							colaborador.setTipoColaborador(linea);
						  
							this.colaboradores.add(colaborador);
						   }
						   linea = reader.readLine();
						    
			   		}// fin while integrantes
					    
										
			   reader.close();
			   System.out.println("Carga Exitosa de Tiendas y Productos");
			   //vp.mostrarMensaje("Carga Exitosa de Tiendas y Productos"); 
			   linea = reader.readLine();
		       }// fin while grupo
		 
			
			
			// fin try tiendas
			
			catch(java.io.FileNotFoundException fnfex) {
				System.out.println("Archivo no encontrado: " + fnfex);}
			catch(java.io.IOException ioex) {
			
		}
					
	}

	
	*/
	
	
	//------------------------------------------------------ CARGADO DE ARCHIVOS
	

}